#ifndef ALIEN_ATTACK_GAMESTATEMACHINE_H
#define ALIEN_ATTACK_GAMESTATEMACHINE_H

#include <vector>
#include "GameState.h"

struct GameStateMachine
{
    GameStateMachine() {}
    ~GameStateMachine() {}

    void update();
    void render();
    void pushState(GameState *pState);
    void changeState(GameState *pState);
    void popState();
    void clean();

    std::vector<GameState *> &getGameStates() { return m_gameStates; }

private:
    std::vector<GameState *> m_gameStates;
};

#endif // header file protect